#include "WrapperBufferBSharp.h"
#include "DatoBSharp.h"
#include "funciones.h"

namespace Toolkit
{

WrapperBufferBSharp::WrapperBufferBSharp(
        const unsigned long int &direccionEnDisco)
{
    this-> direccionEnDisco = direccionEnDisco;
}

WrapperBufferBSharp::~WrapperBufferBSharp()
{
}

unsigned long int WrapperBufferBSharp::getDireccion() const
{
    return direccionEnDisco;
}

void WrapperBufferBSharp::setDireccion(const unsigned long int &direccion)
{
    this->direccionEnDisco = direccion;
}

void WrapperBufferBSharp::serializar(stringstream &stream, const TipoSerializacion &tSerializacion) const
{
    serializacionDigito(stream, tSerializacion, direccionEnDisco);

    if (componente != NULL)
    {
        this->componente->serializar(stream);
    }
}

void WrapperBufferBSharp::hidratar(stringstream &stream, const Dato &dato, const TipoSerializacion &tSerializacion)
{
    hidratacionDigito(stream, tSerializacion, direccionEnDisco);

    if (componente != NULL)
    {
        this->componente->hidratar(stream, dato);
    }
}

WrapperComponente *WrapperBufferBSharp::clonarSinComponente() const
{
	return new WrapperBufferBSharp(this->direccionEnDisco);
}

}
